Java Program Anatomy